package com.xinchao.service;

import com.xinchao.exception.ServiceException;
import com.xinchao.model.dto.AdvertisementExposuresTouchWatchSumDTO;
import com.xinchao.model.dto.AdvertisementMonitorSumDTO;

import java.util.List;

/**
 * 广告监播Service
 *
 * @author dxy
 * @date 2018/9/29 16:28
 */
public interface AdvertisementMonitorService {
	/**
	 * 通过时间获取广告监播总数
	 * @param advertisementName 广告名称
	 * @param startTime         开始时间
	 * @param endTime           结束时间
	 * @param deviceNumber      机器码
	 * @return IndexAdvertisementMonitorSumVO
	 * @throws ServiceException
	 */
	AdvertisementMonitorSumDTO getAdvertisementMonitorSumByTime(String advertisementName, Long startTime, Long endTime, String deviceNumber) throws ServiceException;

	/**
	 * 通过时间获取终端机器码列表
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @return Long
	 * @throws ServiceException
	 */
	List<String> listDeviceNumberByTime(Long startTime, Long endTime) throws ServiceException;

	/**
	 * 通过时间获取广告监播的曝光次数、触达人次、观看人次
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @return AdvertisementExposuresTouchWatchSumDTO
	 * @throws ServiceException
	 */
	AdvertisementExposuresTouchWatchSumDTO getAdvertisementExposuresTouchWatchSumByTime(Long startTime, Long endTime) throws ServiceException;

	/**
	 * 获取广告监播表中的所有天数列表
	 * @return List<String>
	 */
	List<String> listAllDays();

}
